#ifndef __ARRAY_H
#define __ARRAY_H

#include <iostream>
#include <string>
using namespace std;

class array // 有别于普通数组，数据必须相连不能跳过
{
private:
    int *ptr;    // 容器
    int maxsize; // 容器最大大小

public:
    array()
    {
        ptr = new int[10];
        maxsize = 10;
        arrsize = 0;
    }
    array(int size) : maxsize(size)
    {
        ptr = new int[size];
        maxsize = size;
    }
    ~array()
    {
        delete[] ptr;
    }
    int &operator[](int n) const; // 重载[]运算符
    int fill(int num); // 填充数组,返回填充个数
    bool assignment(int n, int num);
    int find_by_num(int num); // 查找指定值的位置
    int &at(int n); // 查找指定下标
    int &front() const; // 返回数组第一个元素的引用
    int &back() const; // 返回数组最后一个元素的引用
    bool swap(array &other); // 交换 //注意交换产生double free问题
    bool sort(void); // 冒泡排序
};

#endif